import os
import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Bar, Grid
from pyecharts.charts import Timeline

# 数据目录
data_dir = "/root/eduhq/result/ads_user_region/"
# 背景图片
background_image = "/root/eduhq/images/img_2.png"
# 输出图表存放地址
output_path = "/root/eduhq/html/不同经济大区用户访问量统计柱形图.html"

# 读取用户访问量数据
# 假设数据格式为日期和各经济大区的访问量
data_file = os.path.join(data_dir, "user_region_data.csv")  # 替换为你的数据文件
data = pd.read_csv(data_file)

# 假设数据文件有日期列和各经济大区的列
dates = data["Date"].tolist()
regions = data.columns[1:].tolist()  # 假设第一列是日期，其余是经济大区
timeline = Timeline()

# 创建每个时间点的柱形图
for date in dates:
    region_data = data[data["Date"] == date][regions].values.flatten().tolist()

    bar = (
        Bar()
        .add_xaxis(regions)
        .add_yaxis(date, region_data)
        .set_global_opts(
            title_opts=opts.TitleOpts(title=f"{date} 不同经济大区用户访问量统计"),
            xaxis_opts=opts.AxisOpts(name="经济大区"),
            yaxis_opts=opts.AxisOpts(name="访问量"),
        )
    )

    timeline.add(bar, time=date)

# 设置背景图片（需手动实现，Pyecharts 不直接支持背景图）
timeline.render_background_img(background_image)

# 生成图表
timeline.render(output_path)

print(f"图表已生成并保存到: {output_path}")
